package com.acme.bankapp.service.command;

import com.acme.bankapp.exception.command.CommandException;

/**
 * Interface representing command.
 * @author Gregory Sobko
 */
public interface Command {
    /**
     * Command prefix should be unique to interact with user
     * @return String representing
     */
    String getCommandPrefix();

    /**
     * Logics of command
     * @param request request string to process
     * @return returns status message
     * @throws CommandException On illegal command
     */
    String executeCommand(String request) throws CommandException;
}
